package com.example.piedritas;

import java.util.Random;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;

public class Activity3 extends Activity implements OnClickListener,
		OnLongClickListener {
	ImageButton piedra;
	ImageButton papel;
	ImageButton tijera;
	ImageButton lagarto;
	ImageButton spock;
	ImageButton confirmar;
	private int modoDeJuego;
	private int jugador1, jugador2;
	TextView nombrePlayer2;
	

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_activity2);

		piedra = (ImageButton) findViewById(R.id.piedra);
		piedra.setOnClickListener(this);
		papel = (ImageButton) findViewById(R.id.papel);
		papel.setOnClickListener(this);
		tijera = (ImageButton) findViewById(R.id.tijeras);
		tijera.setOnClickListener(this);
		lagarto = (ImageButton) findViewById(R.id.lagarto);
		lagarto.setOnClickListener(this);
		spock = (ImageButton) findViewById(R.id.spok);
		spock.setOnClickListener(this);

		confirmar = (ImageButton) findViewById(R.id.confirm);
		confirmar.setOnLongClickListener(this);

		Bundle i = this.getIntent().getExtras();
		this.modoDeJuego = i.getInt("valorDeJuego");
		this.jugador1 = i.getInt("Jugador1");

		nombrePlayer2 = (TextView) findViewById(R.id.vistaDeNombreJ1);
		nombrePlayer2.setText(nombrePlayer2.getText().toString()+ MainActivity.getJugador2Nombre());

		if (this.modoDeJuego == 1) {
			piedra.setClickable(false);
			papel.setClickable(false);
			tijera.setClickable(false);
			lagarto.setClickable(false);
			spock.setClickable(false);

			Toast toas = Toast.makeText(this, "Turno de "+ MainActivity.getJugador2Nombre(),
					Toast.LENGTH_SHORT);
			toas.show();
			turnoMaquina();
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity3, menu);
		return true;
	}

	@Override
	public boolean onLongClick(View v) {
		if(confirmar.getDrawable() != null){
			Intent i = new Intent(Activity3.this, Activity4.class);
			i.putExtra("valorDeJuego", this.modoDeJuego);
			i.putExtra("Jugador1", this.jugador1);
			i.putExtra("Jugador2", this.jugador2);
			startActivity(i);
		}
		return false;
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.piedra:
			confirmar.setImageDrawable(this.piedra.getDrawable());
			this.jugador2 = 1;
			break;
		case R.id.papel:
			confirmar.setImageDrawable(this.papel.getDrawable());
			this.jugador2 = 2;
			break;
		case R.id.tijeras:
			confirmar.setImageDrawable(this.tijera.getDrawable());
			this.jugador2 = 3;
			break;
		case R.id.lagarto:
			confirmar.setImageDrawable(this.lagarto.getDrawable());
			this.jugador2 = 4;
			break;
		case R.id.spok:
			confirmar.setImageDrawable(this.spock.getDrawable());
			this.jugador2 = 5;
			break;
		}
	}
	
	@Override
	protected void onRestart() {
		finish();
		super.onRestart();
	}
	
	/**
	 * funcion que ejecuta el turno de la maquina en modo random 
	 * y cambia de actividad al terminar
	 */
	public void turnoMaquina() {

		Thread hilo = new Thread(new Runnable() {
			@Override
			public void run() {
				for (int i1 = 0; i1 < 11; i1++) {
					int opcion = (int) (Math.random() * 5) + 1;
					switch (opcion) {
					case 1:
						confirmar.post(new Runnable() {
							@Override
							public void run() {
								confirmar.setImageDrawable(piedra.getDrawable());
								jugador2 = 1;
							}
						});
						break;
					case 2:
						confirmar.post(new Runnable() {
							@Override
							public void run() {
								confirmar.setImageDrawable(papel.getDrawable());
								jugador2 = 2;
							}
						});
						break;
					case 3:
						confirmar.post(new Runnable() {
							@Override
							public void run() {
								confirmar.setImageDrawable(tijera.getDrawable());
								jugador2 = 3;
							}
						});
						break;
					case 4:
						confirmar.post(new Runnable() {
							@Override
							public void run() {
								confirmar.setImageDrawable(lagarto.getDrawable());
								jugador2 = 4;
							}
						});
						break;
					case 5:
						confirmar.post(new Runnable() {
							@Override
							public void run() {
								confirmar.setImageDrawable(spock.getDrawable());
								jugador2 = 5;
							}
						});
						break;
					}
					try {
						Thread.sleep(380);
					} catch (InterruptedException e) {
					}
					if(i1 == 10){
					Intent i = new Intent(Activity3.this, Activity4.class);
					i.putExtra("valorDeJuego", modoDeJuego);
					i.putExtra("Jugador1", jugador1);
					i.putExtra("Jugador2", jugador2);
					startActivity(i);
					}
				}
			}
		});
		hilo.start();
	}
}
